home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / lib / c / stdio / RCS / fopen.c,v < prev    next >
Text File  |  1991-12-02  |  3KB  |  172 lines

  1. head     1.4;
  2. branch   ;
  3. access   ;
  4. symbols  sprited:1.4.1;
  5. locks    ; strict;
  6. comment  @ * @;
  7.  
  8.  
  9. 1.4
  10. date     88.07.29.18.56.33;  author ouster;  state Exp;
  11. branches 1.4.1.1;
  12. next     1.3;
  13.  
  14. 1.3
  15. date     88.07.25.14.10.25;  author ouster;  state Exp;
  16. branches ;
  17. next     1.2;
  18.  
  19. 1.2
  20. date     88.07.25.13.12.51;  author ouster;  state Exp;
  21. branches ;
  22. next     1.1;
  23.  
  24. 1.1
  25. date     88.06.10.16.23.45;  author ouster;  state Exp;
  26. branches ;
  27. next     ;
  28.  
  29. 1.4.1.1
  30. date     91.12.02.19.57.00;  author kupfer;  state Exp;
  31. branches ;
  32. next     ;
  33.  
  34.  
  35. desc
  36. @@
  37.  
  38.  
  39. 1.4
  40. log
  41. @Lint.
  42. @
  43. text
  44. @/* 
  45.  * fopen.c --
  46.  *
  47.  *    Source code for the "fopen" library procedure.
  48.  *
  49.  * Copyright 1988 Regents of the University of California
  50.  * Permission to use, copy, modify, and distribute this
  51.  * software and its documentation for any purpose and without
  52.  * fee is hereby granted, provided that the above copyright
  53.  * notice appear in all copies.  The University of California
  54.  * makes no representations about the suitability of this
  55.  * software for any purpose.  It is provided "as is" without
  56.  * express or implied warranty.
  57.  */
  58.  
  59. #ifndef lint
  60. static char rcsid[] = "$Header: fopen.c,v 1.3 88/07/25 14:10:25 ouster Exp $ SPRITE (Berkeley)";
  61. #endif not lint
  62.  
  63. #include "stdio.h"
  64. #include "fileInt.h"
  65. #include "stdlib.h"
  66. #include <sys/file.h>
  67.  
  68. extern long lseek();
  69.  
  70. /*
  71.  *----------------------------------------------------------------------
  72.  *
  73.  * fopen --
  74.  *
  75.  *    Open a file and associate a buffered stream with the open file.
  76.  *
  77.  * Results:
  78.  *    The return value is a stream that may be used to access
  79.  *    the file, or NULL if an error occurred in opening the file.
  80.  *
  81.  * Side effects:
  82.  *    A file is opened, and a stream is initialized.
  83.  *
  84.  *----------------------------------------------------------------------
  85.  */
  86.  
  87. FILE *
  88. fopen(fileName, access)
  89.     char *fileName;        /* Name of file to be opened. */
  90.     char *access;        /* Indicates type of access:  "r" for reading,
  91.                  * "w" for writing, "a" for appending, "r+"
  92.                  * for reading and writing, "w+" for reading
  93.                  * and writing with initial truncation, "a+"
  94.                  * for reading and writing with initial
  95.                  * position at the end of the file.  The
  96.                  * letter "b" may also appear in the string,
  97.                  * for ANSI compatibility, but only after
  98.                  * the first letter.  It is ignored. */
  99. {
  100.     int     streamID, flags;
  101.  
  102.     flags = StdioFileOpenMode(access);
  103.     if (flags == -1) {
  104.     return (FILE *) NULL;
  105.     }
  106.  
  107.     streamID = open(fileName, flags, 0666);
  108.     if (streamID < 0) {
  109.     return (FILE *) NULL;
  110.     }
  111.     if (access[0] == 'a') {
  112.     (void) lseek(streamID, 0L, L_XTND);
  113.     }
  114.  
  115.     /*
  116.      * Initialize the stream structure.
  117.      */
  118.  
  119.     return fdopen(streamID, access);
  120. }
  121. @
  122.  
  123.  
  124. 1.4.1.1
  125. log
  126. @Initial branch for Sprite server.
  127. @
  128. text
  129. @d17 1
  130. a17 1
  131. static char rcsid[] = "$Header: /sprite/src/lib/c/stdio/RCS/fopen.c,v 1.4 88/07/29 18:56:33 ouster Exp $ SPRITE (Berkeley)";
  132. @
  133.  
  134.  
  135. 1.3
  136. log
  137. @Generate more complete lint library information.
  138. @
  139. text
  140. @d17 1
  141. a17 1
  142. static char rcsid[] = "$Header: fopen.c,v 1.2 88/07/25 13:12:51 ouster Exp $ SPRITE (Berkeley)";
  143. d69 1
  144. a69 1
  145.     (void) lseek(streamID, 0, L_XTND);
  146. @
  147.  
  148.  
  149. 1.2
  150. log
  151. @Lint.
  152. @
  153. text
  154. @d17 1
  155. a17 1
  156. static char rcsid[] = "$Header: fopen.c,v 1.1 88/06/10 16:23:45 ouster Exp $ SPRITE (Berkeley)";
  157. a57 1
  158.     char    nextChar;
  159. @
  160.  
  161.  
  162. 1.1
  163. log
  164. @Initial revision
  165. @
  166. text
  167. @d17 1
  168. a17 1
  169. static char rcsid[] = "$Header: atoi.c,v 1.1 88/04/28 17:20:23 ouster Exp $ SPRITE (Berkeley)";
  170. d24 2
  171. @
  172.